/*
 * Copyright 2014 RSA 2014 group Alpha @ CS, Aarhus University
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */ 
package cs.rsa.ts14.alpha;

import cs.rsa.ts14.framework.*;

/** Define the role of a strategy to handle an empty line
 * used in the TS14 input format.
 * 
 * This is the strategy role in the Strategy pattern.
 * 
 * @author RSA 2014 group Alpha @ CS, Aarhus University
 */
public interface EmptyLineStrategy {

  /** Give current state and the method will
   * decide the new state and return it.
   * @param the current state
   * @return the next state
   */
  LineSequenceState handleEmptyLine(LineSequenceState currentState);
  
  /** This method will reset the counted empty lines.
   * @param none
   * @return none
   */
  void otherLineTypeReceived();
}
